package com.xxxx.seckill.controller;

import com.xxxx.seckill.VO.ResponseBean;
import com.xxxx.seckill.pojo.User;
import com.xxxx.seckill.rabbitmq.MQSender;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * <p>
 * 前端控制器
 * </p>
 *
 * @author Jack
 * @since 2024-01-20
 */
@Controller
@RequestMapping("/test")
public class TestController {

    /**
     * 功能描述：用户信息（测试）
     *
     * @param user:
     * @return :
     */
    @RequestMapping("/user/info")
    @ResponseBody
    public ResponseBean info(User user) {
        return ResponseBean.success(user);
    }

    @Autowired
    private MQSender mqSender;

    /**
     * 功能描述：测试发送RabbitMQ消息
     */
    @RequestMapping("/mq")
    @ResponseBody
    public void mq() {
        mqSender.send("Hello World!");
    }

    /**
     * 功能描述：Fanout模式
     */
    @RequestMapping("/mq/fanout")
    @ResponseBody
    public void mqFanout() {
        mqSender.sendFanout("Hello World!");
    }

    /**
     * 功能描述：Direct模式
     */
    @RequestMapping("/mq/direct01")
    @ResponseBody
    public void mqDirect01() {
        mqSender.sendDirect01("Hello, Red!");
    }

    /**
     * 功能描述：Direct模式
     */
    @RequestMapping("/mq/direct02")
    @ResponseBody
    public void mqDirect02() {
        mqSender.sendDirect02("Hello, Green!");
    }

    /**
     * 功能描述：Topic模式
     */
    @RequestMapping("/mq/topic01")
    @ResponseBody
    public void mqTopic01() {
        mqSender.sendTopic01("Hello, Red!");
    }

    /**
     * 功能描述：Topic模式
     */
    @RequestMapping("/mq/topic02")
    @ResponseBody
    public void mqTopic02() {
        mqSender.sendTopic02("Hello, Green!");
    }

    /**
     * 功能描述：Headers模式
     */
    @RequestMapping("/mq/headers01")
    @ResponseBody
    public void mqHeaders01() {
        mqSender.sendHeaders01("Hello, Headers01!");
    }

    /**
     * 功能描述：Headers模式
     */
    @RequestMapping("/mq/headers02")
    @ResponseBody
    public void mqHeaders02() {
        mqSender.sendHeaders02("Hello, Headers02!");
    }
}
